﻿@{
    ViewBag.Title = "Home Page";
}

<div class="jumbotron">
    <h2>ASP.NET SignalR</h2>
    <p class="lead">Library that makes developing real-time web functionality easy. SignalR allows bi-directional communication between server and client. Servers can now push content to connected clients instantly as it becomes available. SignalR supports Web Sockets, and falls back to other compatible techniques for older browsers. SignalR includes APIs for connection management (for instance, connect and disconnect events), grouping connections, and authorization.</p>
    <p><a href="http://asp.net/signalr" class="btn btn-primary btn-large">Learn more &raquo;</a></p>
</div>

<h3>New Features in version 1.0.0</h3>
<div class="row">
    <div class="col-md-6">
        <h4><a href="/Feature/PersistentConnection">PersistentConnection</a></h4>
        <p>Derive PersistentConnection class to use a low-level connection API to send and receive untyped messages.</p>
    </div>
    <div class="col-md-6">
        <h4><a href="/Feature/Hub">Hub</a></h4>
        <p>Derive Hub class to use a high-level connection API to enable remote method invocation and typed messages.</p>
    </div>
</div>
<div class="row">
    <div class="col-md-6">
        <h4><a href="/Feature/ConnectionManager">ConnectionManager</a></h4>
        <p>Use GlobalHost.ConnectionManager to send Messages using a PersistentConnection or Hub from anywhere on the same process.</p>
    </div>
    <div class="col-md-6">
        <h4><a href="/Feature/EnableDetailedErrors">EnableDetailedErrors</a></h4>
        <p>Use HubConfiguration.EnableDetailedErrors to send full exception stack details from server to client.</p>
    </div>
</div>
<div class="row">
    <div class="col-md-6">
        <h4><a href="/Feature/Authorization">Authorization</a></h4>
        <p>Add security to your application, allow only authenticated users or specific user roles to access your SignalR endpoints.</p>
    </div>
</div>

<h3>New Features in version 1.1.0</h3>
<div class="row">
    <div class="col-md-6">
        <h4>Scaleout</h4>
        <p>SignalR can run on multiple server instances using any of these technologies: Sql Server, Service Bus, Redis.</p>
    </div>
    <div class="col-md-6">
        <h4>.NET Client improvements</h4>
        <ul>
            <li>Allow specifiying the JsonSerializer.</li>
            <li>Allow specifiying request headers.</li>
            <li>Allow specifiying client certificates.</li>
            <li>Added tracing using Connection.TraceWriter property.</li>
        </ul>
    </div>
</div>

<h3>New Features in version 2.0.0</h3>
<div class="row">
    <div class="col-md-6">
        <h4>Portable Class Library</h4>
        <p>Use a single SignalR client library on Windows Store, Windows Phone, and Silverlight applications.</p>
    </div>
    <div class="col-md-6">
        <h4>Libraries for Xamarin</h4>
        <p>Added client libraries for Android and iOS applications.</p>
    </div>
</div>
<div class="row">
    <div class="col-md-6">
        <h4><a href="/Feature/SendToUser">Send to User</a></h4>
        <p>Send messages to authenticated users by using their username instead of a connectionId.</p>
    </div>
    <div class="col-md-6">
        <h4><a href="/Feature/HubException">HubException</a></h4>
        <p>Send additional error data when there is an exception.</p>
    </div>
</div>

<h3>New Features in version 2.1.0</h3>
<div class="row">
    <div class="col-md-6">
        <h4><a href="/Feature/HubT">Hub&lt;T&gt;</a></h4>
        <p>Derive Hub&lt;T&gt; class where T is an interface containing client methods (methods you usually invoke in a C# client using hubProxy.On). The advantage is you get autocomplete on server side when typing Clients.Caller.</p>
    </div>
    <div class="col-md-6">
        <h4><a href="/Feature/Progress">Progress</a></h4>
        <p>Hub method taking a long time to complete its work, now it can easily return updates as the work is getting done.</p>
    </div>
</div>
<div class="row">
    <div class="col-md-6">
        <h4><a href="/Feature/SendToUsers">Send to Users</a></h4>
        <p>Send messages to many authenticated users by using their usernames instead of a connectionIds.</p>
    </div>
</div>